ERROR DETECTION REPORTS


When a standard Balcheck test detects an error, a single byte of error data or
info will be reported using the 7-segment dual display along with its respective
error code. The report output to the dual display will be a sequence of numbers
and letters. The sequence will repeat nonstop until the system reset button is
pushed.

1. ERROR SEQUENCE FOR A 4 PASS BALCHECK TESTS ATTEMPT

   NN = error code number (02 thru 14)

   ][ = custom char indicates data error/info byte is displayed next
 
   XX = data error/information byte
 
   HE

   LP

   1.9 sec blank display


2. ERROR SEQUENCE FOR NONSTOP BALCHECK TESTS MODE
   Q/S KEY IS PRESSED BEFORE END OF 4TH PASS

   NN = error code number (02 thru 14)

   ][ = custom char indicates data error/info byte is displayed next
 
   XX = data error/information byte
 
   HE

   LP

   Xh = run time hours where X = 0 thru 9

   XX = run time minutes

        Max run time = 9:59:59
        seconds are not displayed

   1.9 sec blank display



NOTE: The data error/info byte provides information to help identify the reported
failure. Refer to error code descriptions in this doc for details.


+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


ERROR CODES

01 Not Used

02 Screen Interrupt Error

03 On-Board ROM (0000-1FFFH) Checksum Error

04 RAM (4000-4FFFH) Error

05 Magic Shifter Error

06 Not Used

07 Magic Flopper Error

08 Magic OR Error

09 Magic XOR Error

10 OR Intercept Error

11 XOR Intercept Error

12 Magic Expander Error

13 Trigger/Joystick Error

14 Pot Error


Note: Refer to error code descriptions in this doc for details


++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


ERROR CODE 02
SCREEN LINE INTERRUPT ERROR
INTERRUPT MODE 2 (IM2)


This routine checks the operation of the screen line interrupt request and the
execution of the Balcheck screen interrupt subroutine. The routine sets up a
screen interrupt to generate an interrupt when the raster scan matches a software
selected line number.


DUAL LED DISPLAY REPORT


02 Error Code

][

00 Info Byte
   Zero indicates no screen interrupt occured.
   The screen interrupt subroutine was not executed by the Z80 CPU.



This test is a go/no-go test on the screen interrupt function.


++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


ERROR CODE 03
ROM CHECKSUM ERROR


1. SINGLE 8KB ROM CHIP MOTHERBOARD

   This routine adds the contents of each byte within the 8KB ROM chip. If the
   checksum total for the 8192 bytes of ROM is not A4 or FC hex, an error is
   reported displaying the computed checksum.


   DUAL LED DISPLAY REPORT


   03 error code

   ][

   XX info byte where XX = computed checksum


2. FOUR 2KB ROM CHIPS MOTHERBOARD

   When the key 8 is held down and the system reset button is pushed, Balcheck
   will compute the checksums for a motherboard with four 2KB ROM chips. The
   checksum routine will add the contents of each byte within a 2KB ROM chip.
   The checksum total for each 2048 byte ROM chip should be FF hex. If that sum
   is not obtained, an error will be reported as follows:

   03 error code

   ][

   XX info byte where XX = The high order 8 bits of the 16 bit starting address
                           of the failed 2K ROM chip.

      If XX = 00 hex, 0000 ROM 1 is bad (0000-07FFH)

            = 08 hex, 0800 ROM 2 is bad (0800-0FFFH)

            = 10 hex, 1000 ROM 3 is bad (1000-17FFH)

            = 18 hex, 1800 ROM 4 is bad (1800-1FFFH)


++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


ERROR CODE 04
VIDEO DATA LINE/RAM BIT ERROR


This routine tests for any errors occuring along the Microcycler or screen RAM
data buses. The test routine can point to a bad RAM chip but, specifically
checks for an occurance of one or more errors related to the video data bus
lines.

For example, the custom data chip could have a bad data pin 28, which is
designated as screen RAM data bus line MD0. This scenario would produce an
error report with the error code 04 and the error data byte 01.

Typically, an error report will indicate one video data bus line is in error or
all video data bus lines are in error (FF).

When the error data byte reported is FF, it's an indication that the Z80 CPU
is not even able to write data to RAM or read data from RAM. Running also
SetScreen3, to see if it will output a TV display with a 2 color split screen,
may help determine if the Microcycler data bus is operating.


DUAL LED DISPLAY REPORT


04 error code

][

XX data error byte, video data bit(s) in error, where:

                                                  MSD  LSD
   XX = hexadecimal number = video data line bits 7654 3210 and

   X = 0 = 0000   or   X = 8 = 1000
     = 1 = 0001          = 9 = 1001
     = 2 = 0010          = A = 1010
     = 3 = 0011          = b = 1011
     = 4 = 0100          = C = 1100
     = 5 = 0101          = d = 1101
     = 6 = 0110          = E = 1110
     = 7 = 0111          = F = 1111

The hex B digit is displayed as a lower case b which looks similar to 6.
The hex D digit is displayed as a lower case d.


The custom character ][ is placed between the error code 04 and the data error
byte, because sometimes the data error byte is also 04. Adding ][ makes the
sequence easier to read.


HOW TO READ THE ERROR DATA BYTE


The left display digit is the most significant digit (MSD) and represents
video data line bits 7,6,5 and 4.

The right display digit is the least significant digit (LSD) and represents
video data line bits 3,2,1 and 0.

Each bit that is set (logic 1) indicates the video data line that is in error.
The bit numbers in the error data byte correspond with the video data line bit
designations.


EXAMPLES OF REPORTED VIDEO DATA ERROR BYTES


 REPORTED     BINARY      VIDEO DATA BITS              COMMENT
DATA ERROR  EQUIVALENT    IN ERROR,WHERE
  BYTE      7654 3210  SET BIT=ERROR OCCURED

   06       0000 0110        2 and 1         video data bit lines 2 and 1   
                                                    are in error
   80       1000 0000           7

   01       0000 0001         bit 0          video data bit line 0 is in error

   b0       1011 0000       7,5 and 4

   48       0100 1000        6 and 3

   0d       0000 1101       3,2 and 0

   FF       1111 1111          all           all video data bit lines
                                                    are in error


NOTES

1. A video data bit line in error could be occuring along the:

   Microcycler data bus MXD0 thru MXD7, where MXD0 = bit 0, MXD7 = bit 7.
   Screen RAM data bus MD0 thru MD7, where MD0 = bit 0, MD7 = bit 7.

2. Run SetScreen3 to help determine if the Microcycler data bus is operating.
   See BalcheckHR user manual doc "SetScreen3" for details.

   If the Microcycler data bus is operating, then the error is occuring along
   the screen RAM data bus.

3. A data error byte of FF is an indication that the Z80 CPU is not even able
   to write data to RAM or that it can't read from RAM. See note 2.

   Example - It's possible that the Z80 can write to screen RAM, but can not
             read at all from screen RAM if the chip U23 (DM81LS95) is bad.

4. A video data bit line error does not necessarily mean a RAM chip is bad.

   Examples - Chip U23 could be acting up.
              The custom data chip could have a bad data pin.
              The Microcyler data chip U10 could be acting up.

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

ERROR CODE 05
MAGIC SHIFTER ERROR


This routine checks the magic shifter function to see if the data chip shifts a
byte written to magic RAM 0, 1, 2 or 3 pixels to the right.


DUAL LED DISPLAY REPORT


05 error code

][

XX info byte where XX = amount of shift when error occured
                      = 0,1,2 or 3 pixels to the right

                   XX = 00 = error on 0 pixel shift
                      = 01 = error on 1 pixel shift
                      = 02 = error on 2 pixel shift
                      = 03 = error on 3 pixel shift

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

ERROR CODE 07
MAGIC FLOPPER ERROR


This routine tests the data chip's magic flop function. A pixel byte containing
00 00 00 01 will get changed to 01 00 00 00 when written to magic RAM using a
magic flop.


DUAL LED DISPLAY REPORT


07 error code

][

XX info byte where XX = data byte written to magic RAM when error occured 


                   XX = 01 = error when writing 00 00 00 01

                      = 02 = error when writing 00 00 00 10

                      = 04 = error when writing 00 00 01 00

                      = 08 = error when writing 00 00 10 00

                      = 10 = error when writing 00 01 00 00

                      = 20 = error when writing 00 10 00 00

                      = 40 = error when writing 01 00 00 00

                      = 80 = error when writing 10 00 00 00

                      = 7F = error when writing 01 11 11 11

                      = bF = error when writing 10 11 11 11

                      = dF = error when writing 11 01 11 11

                      = EF = error when writing 11 10 11 11

                      = F7 = error when writing 11 11 01 11

                      = Fb = error when writing 11 11 10 11

                      = Fd = error when writing 11 11 11 01

                      = FE = error when writing 11 11 11 10

NOTES

The hex B is displayed using a lower case b and is similar to 6.

The hex D is displayed using a lower case d.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

ERROR CODES 08, 09, 10 AND 11

ERROR CODE 08 MAGIC  OR WRITE ERROR
ERROR CODE 09 MAGIC XOR WRITE ERROR

ERROR CODE 10  OR INTERCEPT ERROR
ERROR CODE 11 XOR INTERCEPT ERROR


These tests perform the logical "OR" and "XOR" function on data being written to
magic RAM with data already stored in screen RAM.


An intercept is defined as the writing of a non-zero pixel in a pixel location
in screen RAM that previously contained a non-zero pixel. The tested intercept
status is compared to the expected status. If they are not the same, then an
error is reported on the dual display.

Reference the Nutting Manual p.100 and p.94 for info on these 4 
functions. This manual is archived on the BallyAlley.com website in the
Machine Language/Astrocade ML Docs section.

The logic table for the OR function is as follows.

X  Y  X OR Y
------------
0  0    0
0  1    1
1  0    1
1  1    1

The logic table for the XOR function is as follows.

X  Y  X XOR Y
-------------
0  0     0
0  1     1
1  0     1
1  1     0

where: X = bit that is being written
       Y = bit that is presently in screen RAM
       X OR Y, X XOR Y is resultant bit in screen RAM


DUAL LED DISPLAY REPORT


NN error code = 08 for OR error

              = 09 for XOR error

              = 10 for OR intercept error

              = 11 for XOR intercept error
][

XX info byte = the 8 bit data byte written to magic RAM which 
               produced the error



NOTES

The hex B is displayed as a lower case b and is similar to 6.

The hex D is displayed using a lower case d.

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

ERROR CODE 12
MAGIC EXPANDER ERROR

This routine tests the magic expander function on data written to magic RAM. The
expander turns an 8-bit, 4 pixel byte into a 16 bit, 8 pixel word (2 bytes),
with each bit of the initial 8-bit byte expanded into a 2-bit pixel. The
expanded 2-bit pixel is defined by the output port expand register 19H.


DUAL LED DISPLAY REPORT


12 error code

][

XX info byte = the data output to the expand register 19H

             = 00 = 0000 0000

             = 05 = 0000 0101

             = 0A = 0000 1010

             = 0F = 0000 1111

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

ERROR CODE 13
TRIGGER/JOYSTICK ERROR

ERROR CODE 14
POTENTIOMETER ERROR

These 2 routines read all the hand control input ports. When the hand controls
are not connected to the motherboard, the pot ports are checked for FF and the
trigger/joystick ports are checked for 00. An error is reported if Balcheck
detects a value other than FF or 00 respectively.

The trigger and joystick are on the same input port, so if an error is
detected, use the optional Balcheck "Display All Input Devices" program to
determine which portion of the port is in error.

If a hand control is connected to the motherboard during the standard Balcheck
tests, a pot error will be reported if the pot is NOT fully counterclockwise
(FF). Some aged motherboards may only sense the pot input as FE maximum, even
if the pot is fully counterclockwise. Use the "Display All Input Devices"
program to determine the maximum value the input port can sense when the pot
is fully counterclockwise.


DUAL LED DISPLAY REPORT


NN error code = 13 = Trigger and/or joystick (nonzero input) error

              = 14 = potentiometer (non FF input) error

][

XX info byte where XX = input port hex number with error detected as follows:

                   10 = hand control #1 trigger or joystick is in error

                   11 = hand control #2 trigger or joystick is in error

                   12 = hand control #3 trigger or joystick is in error

                   13 = hand control #4 trigger or joystick is in error


                   1C = hand control #1 potentiometer is in error

                   1d = hand control #2 potentiometer is in error

                   1E = hand control #3 potentiometer is in error

                   1F = hand control #4 potentiometer is in error



Note: The hex D is displayed with a lower case d.



End of document
MCM DESIGN
DEC 2018